#ifndef _TRANSIMIT_PROTOCOL_H__
#define _TRANSIMIT_PROTOCOL_H__

/**
 * @brief 本地透传模块配置枚举
 *
 */
typedef enum TRANSMIT_CMD
{
    TRANSMIT_WIOAT_VERSION_GET = 0, /**< 获取WIoTa版本 */

    TRANSMIT_WIOTA_SYS_CFG_GET = 1, /**< 获取WIoTa子网配置 */
    TRANSMIT_WIOTA_SYS_CFG_SET = 2, /**< 设置WIoTa子网配置 */

    TRANSMIT_WIOTA_ACT_CFG_GET = 3, /**< 获取WIoTa连接态时间 */
    TRANSMIT_WIOTA_ACT_CFG_SET = 4, /**< 设置WIoTa连接态时间 */

    TRANSMIT_WIOTA_FREQ_CFG_GET = 5, /**< 获取WIoTa频点列表 */
    TRANSMIT_WIOTA_FREQ_CFG_SET = 6, /**< 设置WIoTa频点列表 */

    TRANSMIT_WIOTA_POWER_CFG_GET = 7, /**< 获取WIoTa发射功率 */
    TRANSMIT_WIOTA_POWER_CFG_SET = 8, /**< 设置WIoTa发射功率 */

    TRANSMIT_WIOTA_RATE_CFG_GET = 9,  /**< 获取WIoTa速率模式配置 */
    TRANSMIT_WIOTA_RATE_CFG_SET = 10, /**< 设置WIoTa速率模式配置 */

    TRANSMIT_WIOTA_PAGING_TX_CFG_GET = 11, /**< 获取WIoTa低功耗唤醒配置(paging tx) */
    TRANSMIT_WIOTA_PAGING_TX_CFG_SET = 12, /**< 设置WIoTa低功耗唤醒配置(paging tx) */

    TRANSMIT_WIOTA_SYNC_PAGING_CFG_GET = 13, /**< 获取WIoTa低功耗唤醒配置(sync paging) */
    TRANSMIT_WIOTA_SYNC_PAGING_CFG_SET = 14, /**< 设置WIoTa低功耗唤醒配置(sync paging) */

    TRANSMIT_WIOTA_TS_CFG_GET = 15, /**< 获取WIoTa授时配置 */
    TRANSMIT_WIOTA_TS_CFG_SET = 16, /**< 设置WIoTa授时配置 */
#ifdef WIOTA_SUBF_MODE_SUPPORT
    TRANSMIT_WIOTA_SUBF_MODE_CFG_GET = 17, /**< 获取WIoTa子帧模式配置 */
    TRANSMIT_WIOTA_SUBF_MODE_CFG_SET = 18, /**< 获取WIoTa子帧模式配置 */
#endif
    TRANSMIT_GATEWAY_BASE_CFG_GET = 30, /**< 获取网关基础信息配置 */
    TRANSMIT_GATEWAY_BASE_CFG_SET = 31, /**< 设置网关基础信息配置 */

    TRANSMIT_ID_MANAGER_CFG_GET = 32, /**< 获取网关ID管理配置 */
    TRANSMIT_ID_MANAGER_CFG_SET = 33, /**< 设置网关ID管理配置 */

    TRANSMIT_AUTH_CFG_GET = 34, /**< 获取网关鉴权配置 */
    TRANSMIT_AUTH_CFG_SET = 35, /**< 设置网关鉴权配置 */

    TRANSMIT_NET_POLICY_CFG_GET = 36, /**< 获取网卡策略配置 */
    TRANSMIT_NET_POLICY_CFG_SET = 37, /**< 设置网卡策略配置 */

    TRANSMIT_NET_IF_CFG_GET = 38, /**< 获取网口配置 */
    TRANSMIT_NET_IF_CFG_SET = 39, /**< 设置网口配置 */

    TRANSMIT_WIFI_CFG_GET = 40, /**< 获取WIFI配置 */
    TRANSMIT_WIFI_CFG_SET = 41, /**< 设置WIFI配置 */

    TRANSMIT_CAT1_CFG_GET = 42, /**< 获取CAT1配置 */
    TRANSMIT_CAT1_CFG_SET = 45, /**< 设置CAT1配置 */

    TRANSMIT_BT_CFG_GET = 46, /**< 获取蓝牙配置 */

    TRANSMIT_MQTT_SERVER_CFG_GET = 43, /**< 获取MQTT服务器配置 */
    TRANSMIT_MQTT_SERVER_CFG_SET = 44, /**< 设置MQTT服务器配置 */

    TRANSMIT_DATA_CFG_GET = 47, /**< 获取上下行数据编码配置 */
    TRANSMIT_DATA_CFG_SET = 48, /**< 设置上下行数据编码配置 */

    TRANSMIT_WATCHDOG_CFG_GET = 49, /**< 获取看门狗配置 */
    TRANSMIT_WATCHDOG_CFG_SET = 50, /**< 设置看门狗配置 */

    TRANSMIT_FTP_LOG_CFG_GET = 51, /**< 获取网关LOG配置 */
    TRANSMIT_FTP_LOG_CFG_SET = 52, /**< 设置网关LOG配置 */

    TRANSMIT_LOG_SWITCH_CFG_GET = 53, /**< LOG口查询 */
    TRANSMIT_LOG_SWITCH_CFG_SET = 54, /**< LOG口切换 */

    TRANSMIT_UBOOT_CFG_GET = 55, /**< 获取uboot配置 */
    TRANSMIT_UBOOT_CFG_SET = 56, /**< 设置uboot配置 */

    TRANSMIT_TIMED_CFG_GET = 57, /**< 获取网关定时配置 */
    TRANSMIT_TIMED_CFG_SET = 58, /**< 设置网关定时配置 */

    TRANSMIT_SLOT_SEND_CFG_GET = 60, /**< 获取WIoTa分时发送配置 */
    TRANSMIT_SLOT_SEND_CFG_SET = 61, /**< 设置WIoTa分时发送配置 */

    TRANSMIT_STATIC_DATA_INIT = 70, /**< 初始化静态数据(恢复出厂模式) */
    TRANSMIT_GATEWAY_REBOOT = 71,   /**< 网关重启 */

    TRANSMIT_IMMEDIATE_EFFECTIVE_GET = 72, /**< 获取参数立即生效标志 */
    TRANSMIT_IMMEDIATE_EFFECTIVE_SET = 73, /**< 设置参数立即生效标志 */

    TRANSMIT_MSH_CMD_EXEC = 80,            /**< MSH命令执行 */
    TRANSMIT_FACTORY_TEST_RESULT_GET = 81, /**< 获取工厂测试结果 */

    TRANSMIT_SYNC_CFG_GET = 90, /**< 获取同步助手配置 */
    TRANSMIT_SYNC_CFG_SET = 91, /**< 设置同步助手配置 */

    TRANSMIT_USER_DATA_SEND = 100, /**< 用户数据发送 */
    TRANSMIT_USER_DATA_RECV = 101, /**< 用户数据接收 */

    TRANSMIT_IOTE_STATE_RECV = 102, /**< IOTE状态数据接收 */

    TRANSMIT_UART_485_CFG_GET = 104, /**< 获取uart_485配置 */
    TRANSMIT_UART_485_CFG_SET = 105, /**< 设置uart_485配置 */

    TRANSMIT_TRANSPARENT_DATA_SEND = 110, /**< 透传数据发送 */
    TRANSMIT_TRANSPARENT_DATA_RECV = 111, /**< 透传数据接收 */

    TRANSMIT_ONLINE_DEVICE_GET = 120, /**< 获取在线设备列表 */

    TRANSMIT_DEVICE_STATUS_GET = 121, /**< 获取设备状态 */

    TRANSMIT_GATEWAY_TIME_GET = 122, /**< 获取网关时间 */

    TRANSMIT_SYNC_DYNAMIC_INFO_GET = 123, /**< 获取同步助手动态信息 */
} TRANSMIT_CMD_E;

int gb_15322_response(unsigned int addr, unsigned char ctl,
                      void *data, int len,
                      char **encode_data, int *encode_len);

#endif